[INFO] cloning repository https://github.com/uxiun/parse-lr-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/uxiun/parse-lr-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuxiun%2Fparse-lr-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuxiun%2Fparse-lr-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2d9b52b4476af42f9bb94fdaab2b8603890b9374
[INFO] checking uxiun/parse-lr-rs against try#4d8aa70caf2d2f6ef5a31eab47961bf7d0acacb7 for pr-158816
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuxiun%2Fparse-lr-rs" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/uxiun/parse-lr-rs
[INFO] finished tweaking git repo https://github.com/uxiun/parse-lr-rs
[INFO] tweaked toml for git repo https://github.com/uxiun/parse-lr-rs written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/uxiun/parse-lr-rs on toolchain 4d8aa70caf2d2f6ef5a31eab47961bf7d0acacb7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d8aa70caf2d2f6ef5a31eab47961bf7d0acacb7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/uxiun/parse-lr-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d8aa70caf2d2f6ef5a31eab47961bf7d0acacb7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded syntree v0.14.5
[INFO] [stderr]   Downloaded papergrid v0.10.0
[INFO] [stderr]   Downloaded tabled_derive v0.6.0
[INFO] [stderr]   Downloaded bytecount v0.6.7
[INFO] [stderr]   Downloaded nonempty v0.8.1
[INFO] [stderr]   Downloaded rust-ini v0.13.0
[INFO] [stderr]   Downloaded tint v1.0.1
[INFO] [stderr]   Downloaded config v0.11.0
[INFO] [stderr]   Downloaded serde-hjson v0.9.1
[INFO] [stderr]   Downloaded triomphe v0.1.9
[INFO] [stderr]   Downloaded tabled v0.14.0
[INFO] [stderr]   Downloaded ptree v0.4.0
[INFO] [stderr]   Downloaded cstree v0.12.0
[INFO] [stderr]   Downloaded nom v5.1.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6
[INFO] running `Command { std: "docker" "start" "1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6" "/opt/rustwide/cargo-home/bin/cargo" "+4d8aa70caf2d2f6ef5a31eab47961bf7d0acacb7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6" "/opt/rustwide/cargo-home/bin/cargo" "+4d8aa70caf2d2f6ef5a31eab47961bf7d0acacb7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.69
[INFO] [stderr]    Compiling libc v0.2.150
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]    Compiling serde v1.0.192
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]    Compiling serde_json v1.0.108
[INFO] [stderr]    Compiling nom v5.1.3
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking smallvec v1.11.2
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]     Checking hashbrown v0.14.2
[INFO] [stderr]     Checking serde v0.8.23
[INFO] [stderr]     Checking bytecount v0.6.7
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking rust-ini v0.13.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking papergrid v0.10.0
[INFO] [stderr]     Checking triomphe v0.1.9
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking tint v1.0.1
[INFO] [stderr]     Checking text-size v1.1.1
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking sptr v0.3.2
[INFO] [stderr]     Checking itertools v0.11.0
[INFO] [stderr]     Checking syntree v0.14.5
[INFO] [stderr]     Checking nonempty v0.8.1
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking indexmap v2.1.0
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking parking_lot_core v0.9.9
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking directories v4.0.1
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking petgraph v0.6.4
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking cstree v0.12.0
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking regex-automata v0.4.3
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling serde_derive v1.0.192
[INFO] [stderr]    Compiling tabled_derive v0.6.0
[INFO] [stderr]     Checking regex v1.10.2
[INFO] [stderr]     Checking tabled v0.14.0
[INFO] [stderr]     Checking serde-hjson v0.9.1
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]     Checking config v0.11.0
[INFO] [stderr]     Checking ptree v0.4.0
[INFO] [stderr]     Checking parselr v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/automaton.rs:352:12
[INFO] [stdout]     |
[INFO] [stdout] 352 |         for i in (0..maxlen)
[INFO] [stdout]     |                  ^         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -         for i in (0..maxlen)
[INFO] [stdout] 352 +         for i in 0..maxlen
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/format.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     fmt::{Debug, Display},
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TT`, `hashmap_deep_map`, `showshort`, and `unions_hashmap`
[INFO] [stdout]   --> src/format.rs:11:33
[INFO] [stdout]    |
[INFO] [stdout] 11 |     misc::{fill_empty_key_hashmap, hashmap_deep_map, unions_hashmap},
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     show, showshort,
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 13 |     table::{
[INFO] [stdout] 14 |         NonterminalTable, NonterminalTableRow, TerminalOpe, TerminalTable, TerminalTableRow, TT,
[INFO] [stdout]    |                                                                                              ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/misc.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{HashMap, HashSet},
[INFO] [stdout]   |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NonterminalTable`, `Ope`, `TableSet`, `TerminalTable`, and `Token`
[INFO] [stdout]  --> src/parse.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 |     automaton::{Ahead, RuleList, Token},
[INFO] [stdout]   |                                  ^^^^^
[INFO] [stdout] 5 |     showshort,
[INFO] [stdout] 6 |     table::{NonterminalTable, Ope, TableSet, Tables, TerminalOpe, TerminalTable},
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^  ^^^  ^^^^^^^^                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash::Hash`
[INFO] [stdout]  --> src/table.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::Hash};
[INFO] [stdout]   |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Token` and `showshort`
[INFO] [stdout]  --> src/table.rs:6:48
[INFO] [stdout]   |
[INFO] [stdout] 6 |     automaton::{Ahead, AutomatonTable, RuleItems, Token, Tokenkey},
[INFO] [stdout]   |                                                   ^^^^^
[INFO] [stdout] 7 |     showshort,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InputLength`, `anychar`, `delimited`, `separated_list0`, and `space0`
[INFO] [stdout]  --> src/token.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     character::complete::{anychar, multispace1, space0},
[INFO] [stdout]   |                           ^^^^^^^               ^^^^^^
[INFO] [stdout] 4 |     error::ParseError,
[INFO] [stdout] 5 |     multi::{many0, separated_list0},
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |     sequence::{delimited, preceded},
[INFO] [stdout]   |                ^^^^^^^^^
[INFO] [stdout] 7 |     IResult, InputLength, Parser,
[INFO] [stdout]   |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ahead`, `RuleList`, and `show`
[INFO] [stdout]   --> src/token.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 |     automaton::{Ahead, RuleList},
[INFO] [stdout]    |                 ^^^^^  ^^^^^^^^
[INFO] [stdout] 12 |     parse::TokenWithLiteral,
[INFO] [stdout] 13 |     show,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cstree::testing::GreenNodeBuilder`
[INFO] [stdout]  --> src/tree.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use cstree::testing::GreenNodeBuilder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RawSyntaxKind` and `Syntax`
[INFO] [stdout]  --> src/tree.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use cstree::{RawSyntaxKind, Syntax};
[INFO] [stdout]   |              ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `let_chains` has been stable since 1.88.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slice_group_by, let_chains)]
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `slice_group_by` has been stable since 1.77.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slice_group_by, let_chains)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/automaton.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slice_group_by)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the crate root is at `src/lib.rs`
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/automaton.rs:352:12
[INFO] [stdout]     |
[INFO] [stdout] 352 |         for i in (0..maxlen)
[INFO] [stdout]     |                  ^         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 352 -         for i in (0..maxlen)
[INFO] [stdout] 352 +         for i in 0..maxlen
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/format.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     fmt::{Debug, Display},
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TT`, `hashmap_deep_map`, `showshort`, and `unions_hashmap`
[INFO] [stdout]   --> src/format.rs:11:33
[INFO] [stdout]    |
[INFO] [stdout] 11 |     misc::{fill_empty_key_hashmap, hashmap_deep_map, unions_hashmap},
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     show, showshort,
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 13 |     table::{
[INFO] [stdout] 14 |         NonterminalTable, NonterminalTableRow, TerminalOpe, TerminalTable, TerminalTableRow, TT,
[INFO] [stdout]    |                                                                                              ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/misc.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{HashMap, HashSet},
[INFO] [stdout]   |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NonterminalTable`, `Ope`, `TableSet`, `TerminalTable`, and `Token`
[INFO] [stdout]  --> src/parse.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 |     automaton::{Ahead, RuleList, Token},
[INFO] [stdout]   |                                  ^^^^^
[INFO] [stdout] 5 |     showshort,
[INFO] [stdout] 6 |     table::{NonterminalTable, Ope, TableSet, Tables, TerminalOpe, TerminalTable},
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^  ^^^  ^^^^^^^^                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hash::Hash`
[INFO] [stdout]  --> src/table.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::Hash};
[INFO] [stdout]   |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Token` and `showshort`
[INFO] [stdout]  --> src/table.rs:6:48
[INFO] [stdout]   |
[INFO] [stdout] 6 |     automaton::{Ahead, AutomatonTable, RuleItems, Token, Tokenkey},
[INFO] [stdout]   |                                                   ^^^^^
[INFO] [stdout] 7 |     showshort,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InputLength`, `anychar`, `delimited`, `separated_list0`, and `space0`
[INFO] [stdout]  --> src/token.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     character::complete::{anychar, multispace1, space0},
[INFO] [stdout]   |                           ^^^^^^^               ^^^^^^
[INFO] [stdout] 4 |     error::ParseError,
[INFO] [stdout] 5 |     multi::{many0, separated_list0},
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |     sequence::{delimited, preceded},
[INFO] [stdout]   |                ^^^^^^^^^
[INFO] [stdout] 7 |     IResult, InputLength, Parser,
[INFO] [stdout]   |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ahead`, `RuleList`, and `show`
[INFO] [stdout]   --> src/token.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 |     automaton::{Ahead, RuleList},
[INFO] [stdout]    |                 ^^^^^  ^^^^^^^^
[INFO] [stdout] 12 |     parse::TokenWithLiteral,
[INFO] [stdout] 13 |     show,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cstree::testing::GreenNodeBuilder`
[INFO] [stdout]  --> src/tree.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use cstree::testing::GreenNodeBuilder;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RawSyntaxKind` and `Syntax`
[INFO] [stdout]  --> src/tree.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use cstree::{RawSyntaxKind, Syntax};
[INFO] [stdout]   |              ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `let_chains` has been stable since 1.88.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slice_group_by, let_chains)]
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `slice_group_by` has been stable since 1.77.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slice_group_by, let_chains)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `#![feature]` attribute can only be used at the crate root
[INFO] [stdout]  --> src/automaton.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(slice_group_by)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the crate root is at `src/lib.rs`
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `group_by` exists for reference `&'a [Rule<'_>]`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/automaton.rs:254:4
[INFO] [stdout]     |
[INFO] [stdout] 253 | /     rules
[INFO] [stdout] 254 | |         .group_by(|s, d| s.left == d.left)
[INFO] [stdout]     | |         -^^^^^^^^ method cannot be called on `&'a [Rule<'_>]` due to unsatisfied trait bounds
[INFO] [stdout]     | |_________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `&[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&[Rule<'_>]: Itertools`
[INFO] [stdout]             `&&[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&&[Rule<'_>]: Itertools`
[INFO] [stdout]             `&mut &'a [Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&mut &'a [Rule<'_>]: Itertools`
[INFO] [stdout]             `[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `[Rule<'_>]: Itertools`
[INFO] [stdout]             `&mut [Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&mut [Rule<'_>]: Itertools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `group_by` exists for reference `&[Rule<'_>]`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/automaton.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 547 |           let r = rulelist
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 548 | |             .0
[INFO] [stdout] 549 | |             .into_iter()
[INFO] [stdout] 550 | |             .as_slice()
[INFO] [stdout] 551 | |             .group_by(|s, d| s.left == d.left)
[INFO] [stdout]     | |             -^^^^^^^^ method cannot be called on `&[Rule<'_>]` due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `&[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&[Rule<'_>]: Itertools`
[INFO] [stdout]             `&&[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&&[Rule<'_>]: Itertools`
[INFO] [stdout]             `&mut &[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&mut &[Rule<'_>]: Itertools`
[INFO] [stdout]             `[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `[Rule<'_>]: Itertools`
[INFO] [stdout]             `&mut [Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&mut [Rule<'_>]: Itertools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `group_by` exists for reference `&'a [Rule<'_>]`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/automaton.rs:254:4
[INFO] [stdout]     |
[INFO] [stdout] 253 | /     rules
[INFO] [stdout] 254 | |         .group_by(|s, d| s.left == d.left)
[INFO] [stdout]     | |         -^^^^^^^^ method cannot be called on `&'a [Rule<'_>]` due to unsatisfied trait bounds
[INFO] [stdout]     | |_________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `&[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&[Rule<'_>]: Itertools`
[INFO] [stdout]             `&&[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&&[Rule<'_>]: Itertools`
[INFO] [stdout]             `&mut &'a [Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&mut &'a [Rule<'_>]: Itertools`
[INFO] [stdout]             `[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `[Rule<'_>]: Itertools`
[INFO] [stdout]             `&mut [Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&mut [Rule<'_>]: Itertools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `group_by` exists for reference `&[Rule<'_>]`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/automaton.rs:551:5
[INFO] [stdout]     |
[INFO] [stdout] 547 |           let r = rulelist
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 548 | |             .0
[INFO] [stdout] 549 | |             .into_iter()
[INFO] [stdout] 550 | |             .as_slice()
[INFO] [stdout] 551 | |             .group_by(|s, d| s.left == d.left)
[INFO] [stdout]     | |             -^^^^^^^^ method cannot be called on `&[Rule<'_>]` due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `&[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&[Rule<'_>]: Itertools`
[INFO] [stdout]             `&&[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&&[Rule<'_>]: Itertools`
[INFO] [stdout]             `&mut &[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&mut &[Rule<'_>]: Itertools`
[INFO] [stdout]             `[Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `[Rule<'_>]: Itertools`
[INFO] [stdout]             `&mut [Rule<'_>]: Iterator`
[INFO] [stdout]             which is required by `&mut [Rule<'_>]: Itertools`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rules`
[INFO] [stdout]   --> src/automaton.rs:15:2
[INFO] [stdout]    |
[INFO] [stdout] 15 |     rules: &'a Vec<Rule<'a>>,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_history`
[INFO] [stdout]   --> src/automaton.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let left_history: HashSet<&str> = HashSet::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]    --> src/automaton.rs:383:27
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...                   .and_modify(|(ts, ns)| {
[INFO] [stdout]     |                                         ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ts`
[INFO] [stdout]    --> src/automaton.rs:370:22
[INFO] [stdout]     |
[INFO] [stdout] 370 | ...                   .and_modify(|(ts, ns)| {
[INFO] [stdout]     |                                     ^^ help: if this is intentional, prefix it with an underscore: `_ts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `terminals`
[INFO] [stdout]    --> src/automaton.rs:362:14
[INFO] [stdout]     |
[INFO] [stdout] 362 | ...                   Some((terminals, nons)) => {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_terminals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expanded`
[INFO] [stdout]    --> src/automaton.rs:400:7
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (expanded, terminalonly) = expand_follow_dict(&dict, HashMap::new());
[INFO] [stdout]     |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expanded`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/automaton.rs:452:28
[INFO] [stdout]     |
[INFO] [stdout] 452 |             let (mut new_terminals, mut still_nons): (Vec<&str>, Vec<&str>) = nons.iter().fold(
[INFO] [stdout]     |                                     ----^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/automaton.rs:477:35
[INFO] [stdout]     |
[INFO] [stdout] 477 |         next_only_dict.keys().for_each(|k| {});
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rules`
[INFO] [stdout]   --> src/automaton.rs:15:2
[INFO] [stdout]    |
[INFO] [stdout] 15 |     rules: &'a Vec<Rule<'a>>,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_history`
[INFO] [stdout]   --> src/automaton.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let left_history: HashSet<&str> = HashSet::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_history`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fromrule`
[INFO] [stdout]    --> src/automaton.rs:742:14
[INFO] [stdout]     |
[INFO] [stdout] 742 |             .filter(|(fromrule, sameleft, hset)| {
[INFO] [stdout]     |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fromrule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hset`
[INFO] [stdout]    --> src/automaton.rs:742:34
[INFO] [stdout]     |
[INFO] [stdout] 742 |             .filter(|(fromrule, sameleft, hset)| {
[INFO] [stdout]     |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_hset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addrule`
[INFO] [stdout]    --> src/automaton.rs:717:14
[INFO] [stdout]     |
[INFO] [stdout] 717 |                     .find(|(addrule, sameleft, ahead)| sameleft.to_string() == item.rule.left)
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addrule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ahead`
[INFO] [stdout]    --> src/automaton.rs:717:33
[INFO] [stdout]     |
[INFO] [stdout] 717 |                     .find(|(addrule, sameleft, ahead)| sameleft.to_string() == item.rule.left)
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_ahead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selfi`
[INFO] [stdout]    --> src/automaton.rs:714:11
[INFO] [stdout]     |
[INFO] [stdout] 714 |             .map(|(selfi, item)| {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_selfi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addrule`
[INFO] [stdout]    --> src/automaton.rs:715:18
[INFO] [stdout]     |
[INFO] [stdout] 715 |                 if let Some((addrule, &sameleft, hset)) = toadd
[INFO] [stdout]     |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addrule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selfi`
[INFO] [stdout]    --> src/automaton.rs:693:18
[INFO] [stdout]     |
[INFO] [stdout] 693 |             .filter_map(|(selfi, item)| match item.rule.right.get(item.cursor) {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_selfi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]    --> src/automaton.rs:383:27
[INFO] [stdout]     |
[INFO] [stdout] 383 | ...                   .and_modify(|(ts, ns)| {
[INFO] [stdout]     |                                         ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ts`
[INFO] [stdout]    --> src/automaton.rs:370:22
[INFO] [stdout]     |
[INFO] [stdout] 370 | ...                   .and_modify(|(ts, ns)| {
[INFO] [stdout]     |                                     ^^ help: if this is intentional, prefix it with an underscore: `_ts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `terminals`
[INFO] [stdout]    --> src/automaton.rs:362:14
[INFO] [stdout]     |
[INFO] [stdout] 362 | ...                   Some((terminals, nons)) => {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_terminals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expanded`
[INFO] [stdout]    --> src/automaton.rs:400:7
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let (expanded, terminalonly) = expand_follow_dict(&dict, HashMap::new());
[INFO] [stdout]     |          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expanded`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/format.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 |             pairs.sort_by_key(|(non, u)| non.to_string());
[INFO] [stdout]     |                                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/format.rs:115:22
[INFO] [stdout]     |
[INFO] [stdout] 115 |         v.sort_by_key(|(k, v)| k.to_string());
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non`
[INFO] [stdout]    --> src/format.rs:139:33
[INFO] [stdout]     |
[INFO] [stdout] 139 |             .chain(row.into_iter().map(|(non, s)| s))
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_non`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/automaton.rs:452:28
[INFO] [stdout]     |
[INFO] [stdout] 452 |             let (mut new_terminals, mut still_nons): (Vec<&str>, Vec<&str>) = nons.iter().fold(
[INFO] [stdout]     |                                     ----^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/automaton.rs:477:35
[INFO] [stdout]     |
[INFO] [stdout] 477 |         next_only_dict.keys().for_each(|k| {});
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/misc.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut h = HashMap::new();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initialid`
[INFO] [stdout]    --> src/table.rs:112:2
[INFO] [stdout]     |
[INFO] [stdout] 112 |     initialid: u64,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initialid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fromrule`
[INFO] [stdout]    --> src/automaton.rs:742:14
[INFO] [stdout]     |
[INFO] [stdout] 742 |             .filter(|(fromrule, sameleft, hset)| {
[INFO] [stdout]     |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fromrule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hset`
[INFO] [stdout]    --> src/automaton.rs:742:34
[INFO] [stdout]     |
[INFO] [stdout] 742 |             .filter(|(fromrule, sameleft, hset)| {
[INFO] [stdout]     |                                           ^^^^ help: if this is intentional, prefix it with an underscore: `_hset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addrule`
[INFO] [stdout]    --> src/automaton.rs:717:14
[INFO] [stdout]     |
[INFO] [stdout] 717 |                     .find(|(addrule, sameleft, ahead)| sameleft.to_string() == item.rule.left)
[INFO] [stdout]     |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addrule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ahead`
[INFO] [stdout]    --> src/automaton.rs:717:33
[INFO] [stdout]     |
[INFO] [stdout] 717 |                     .find(|(addrule, sameleft, ahead)| sameleft.to_string() == item.rule.left)
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_ahead`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selfi`
[INFO] [stdout]    --> src/automaton.rs:714:11
[INFO] [stdout]     |
[INFO] [stdout] 714 |             .map(|(selfi, item)| {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_selfi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addrule`
[INFO] [stdout]    --> src/automaton.rs:715:18
[INFO] [stdout]     |
[INFO] [stdout] 715 |                 if let Some((addrule, &sameleft, hset)) = toadd
[INFO] [stdout]     |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_addrule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selfi`
[INFO] [stdout]    --> src/automaton.rs:693:18
[INFO] [stdout]     |
[INFO] [stdout] 693 |             .filter_map(|(selfi, item)| match item.rule.right.get(item.cursor) {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_selfi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remained_src`
[INFO] [stdout]   --> src/token.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 |         Ok((remained_src, ve)) => {
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remained_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/token.rs:66:21
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 nom::Err::Error(e) => {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/token.rs:69:23
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 nom::Err::Failure(e) => {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/token.rs:72:26
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 nom::Err::Incomplete(e) => {
[INFO] [stdout]    |                                      ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/tree.rs:158:24
[INFO] [stdout]     |
[INFO] [stdout] 158 |                 Token::Nonterminal(s) => {
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/format.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 |             pairs.sort_by_key(|(non, u)| non.to_string());
[INFO] [stdout]     |                                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/format.rs:115:22
[INFO] [stdout]     |
[INFO] [stdout] 115 |         v.sort_by_key(|(k, v)| k.to_string());
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `non`
[INFO] [stdout]    --> src/format.rs:139:33
[INFO] [stdout]     |
[INFO] [stdout] 139 |             .chain(row.into_iter().map(|(non, s)| s))
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_non`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `parselr` (lib test) due to 2 previous errors; 39 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/misc.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut h = HashMap::new();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initialid`
[INFO] [stdout]    --> src/table.rs:112:2
[INFO] [stdout]     |
[INFO] [stdout] 112 |     initialid: u64,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initialid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remained_src`
[INFO] [stdout]   --> src/token.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 |         Ok((remained_src, ve)) => {
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remained_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/token.rs:66:21
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 nom::Err::Error(e) => {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/token.rs:69:23
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 nom::Err::Failure(e) => {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/token.rs:72:26
[INFO] [stdout]    |
[INFO] [stdout] 72 |                 nom::Err::Incomplete(e) => {
[INFO] [stdout]    |                                      ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/tree.rs:158:24
[INFO] [stdout]     |
[INFO] [stdout] 158 |                 Token::Nonterminal(s) => {
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `parselr` (lib) due to 2 previous errors; 39 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6", kill_on_drop: false }`
[INFO] [stdout] 1f71f690908240d4b9b99252eef2af1ad8888449536661899c1251fb13496bc6
